﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.System.Auth.Dao.GroupMaintenanceDao
 * 类型：       DAO
 * 功能说明：   数据读取
 * 作者：       谈震鸣
 * 创建日期：   2007/08/14
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using Shpm.System.Db;
using Shpm.App.Commons.Db.Beans.Inp;
using Shpm.App.Commons.Db.Beans.Master;
using Shpm.System.Auth.Beans;
namespace Shpm.System.Auth.Dao
{
    public class GroupMaintenanceDao : ShpmBaseDao
    {
        #region 常量
        public const string FIND_BY_MSTGROUP = "GroupMaintenance.findByMstGroup";
        public const string FIND_BY_MSTCLASSNAME = "GroupMaintenance.findByMstClassName";
        public const string FIND_BY_MSTCLASSNAMEUSER = "GroupMaintenance.findByMstClassNameUser";
        public const string FIND_BY_ALLCLASSNAME = "SysUserMaintenance.findByAllClassName";
        public const string FIND_BY_INPUSERGROUP = "GroupMaintenance.findByInpUserGroup";
        public const string FIND_BY_INPUSERGROUPUSER = "GroupMaintenance.findByInpUserGroupUser";
        public const string GET_CLASSNAME = "GroupMaintenance.getClassName";
        public const string GET_USERGROUP = "GroupMaintenance.getUserGroup";
        public const string INSERT_GROUPPERMISSION = "GroupMaintenance.InsertGroupPermission";
        public const string INSERT_USERGROUP = "GroupMaintenance.InsertUserGroup";
        public const string UPDATE_MSTGROUP = "GroupMaintenance.UpdateMstGroup";
        public const string DELETE_MSTGROUP = "GroupMaintenance.DeleteMstGroup";
        public const string DELETE_GROUPPERMISSION = "GroupMaintenance.DeleteGroupPermission";
        public const string DELETE_GROUPPERMISSION_DEL = "GroupMaintenance.DeleteGroupPermissionDel";
        public const string DELETE_USERGROUP = "GroupMaintenance.DeleteUserGroup";
        public const string DELETE_INPUSERGROUP = "GroupMaintenance.DeleteInpUserGroup";
        //
        public const string GET_BY_MSTDEPART = "GroupMaintenance.GetDepartment";
        #endregion
        //Select
        /*
         *名称： FindByMstGroup
         *功能： 读取部门信息
         *参数： paramBean
         *返回： ILIST
         *说明： 无
         */
        public IList FindByMstGroup(MstGroupBean paramBean)
        {
            return QueryForList(FIND_BY_MSTGROUP, paramBean);
        }
        /*
         *名称： FindByMstGroup
         *功能： 读取部门信息
         *参数： paramBean
         *返回： ILIST
         *说明： 无
         */
        public MstDepartmentBean GetByMstDepartment(MstDepartmentBean paramBean)
        {
            return (MstDepartmentBean)base.QueryForObject(GET_BY_MSTDEPART, paramBean);
        }
        /*
         *名称： FindByMstClassName
         *功能： 读取部门可设置的权限
         *参数： paramBean
         *返回： ILIST
         *说明： 无
         */
        public IList FindByMstClassName(ClassNameBean paramBean)
        {
            return QueryForList(FIND_BY_MSTCLASSNAME, paramBean);
        }
        /*
         *名称： FindByMstClassNameUser
         *功能： 读取部门已设置的权限
         *参数： paramBean
         *返回： ILIST
         *说明： 无
         */
        public IList FindByMstClassNameUser(ClassNameBean paramBean)
        {
            return QueryForList(FIND_BY_MSTCLASSNAMEUSER, paramBean);
        }
        /*
         *名称： FindByAllClassName
         *功能： 读取超级组所拥有的权限
         *参数： paramBean
         *返回： ILIST
         *说明： 无
         */
        public IList FindByAllClassName(MstClassNameBean paramBean)
        {
            return QueryForList(FIND_BY_ALLCLASSNAME, paramBean);
        }
        /*
         *名称： FindByInpUserGroup
         *功能： 读取部门可添加的职员
         *参数： paramBean
         *返回： ILIST
         *说明： 无
         */
        public IList FindByInpUserGroup(InpUserGroupBean paramBean)
        {
            return QueryForList(FIND_BY_INPUSERGROUP, paramBean);
        }
        /*
         *名称： FindByInpUserGroupUser
         *功能： 读取部门已添加的职员
         *参数： paramBean
         *返回： ILIST
         *说明： 无
         */
        public IList FindByInpUserGroupUser(InpUserGroupBean paramBean)
        {
            return QueryForList(FIND_BY_INPUSERGROUPUSER, paramBean);
        }
        /*
         *名称： Load
         *功能： 判断权限是否存在
         *参数： paramBean
         *返回： Object
         *说明： 无
         */
        public ClassNameBean Load(ClassNameBean paramBean)
        {
            return (ClassNameBean)QueryForObject(GET_CLASSNAME, paramBean);
        }
        /*
         *名称： UserGroupLoad
         *功能： 判断用户是否存在于该部门
         *参数： paramBean
         *返回： Object
         *说明： 无
         */
        public InpUserGroupBean UserGroupLoad(InpUserGroupBean paramBean)
        {
            return (InpUserGroupBean)QueryForObject(GET_USERGROUP, paramBean);
        }
        //Insert
        /*
         *名称： InsertGroupPermission
         *功能： 插入部门权限
         *参数： paramBean
         *返回： Object
         *说明： 无
         */
        public Object InsertGroupPermission(ClassNameBean paramBean)
        {
            return base.Insert(INSERT_GROUPPERMISSION, paramBean);
        }
        /*
         *名称： InsertUserGroup
         *功能： 插入部门职员
         *参数： paramBean
         *返回： Object
         *说明： 无
         */
        public Object InsertUserGroup(InpUserGroupBean paramBean)
        {
            return base.Insert(INSERT_USERGROUP, paramBean);
        }
        //Update
        /*
         *名称： UpdateMstGroup
         *功能： 更新部门名称
         *参数： paramBean
         *返回： int
         *说明： 无
         */
        public int UpdateMstGroup(MstGroupBean paramBean)
        {
            return base.Update(UPDATE_MSTGROUP, paramBean);
        }
        //Delete
        /*
         *名称： DeleteSysUser
         *功能： 删除部门权限
         *参数： paramBean
         *返回： int
         *说明： 无
         */
        public int DeleteSysUser(ClassNameBean paramBean)
        {
            return base.Delete(DELETE_GROUPPERMISSION, paramBean);
        }
        /*
         *名称： DeleteUserGroup
         *功能： 删除部门ID
         *参数： paramBean
         *返回： int
         *说明： 无
         */
        public int DeleteUserGroup(InpUserGroupBean paramBean)
        {
            return base.Delete(DELETE_USERGROUP, paramBean);
        }
        /*
         *名称： DeleteMstGroupr
         *功能： 删除部门
         *参数： paramBean
         *返回： int
         *说明： 无
         */
        public int DeleteMstGroupr(MstGroupBean paramBean)
        {
            return base.Delete(DELETE_MSTGROUP, paramBean);
        }
        /*
         *名称： DeleteGroupPermission
         *功能： 删除部门
         *参数： paramBean
         *返回： int
         *说明： 无
         */
        public int DeleteGroupPermission(MstGroupBean paramBean)
        {
            return base.Delete(DELETE_GROUPPERMISSION_DEL, paramBean);
        }
        /*
         *名称： DeleteInpUserGroup
         *功能： 删除部门
         *参数： paramBean
         *返回： int
         *说明： 无
         */
        public int DeleteInpUserGroup(MstGroupBean paramBean)
        {
            return base.Delete(DELETE_INPUSERGROUP, paramBean);
        }
        //
        /*
         *名称： InsertGroupPermissionLst
         *功能： 事务处理函数
         *参数： IList 
         *返回： int
         *说明： 无
         */
        public int InsertGroupPermissionLst(IList datalist)
        {
            try
            {
                base.BeginTransaction();
                foreach (ClassNameBean dataBean in datalist)
                {
                    if (this.Load(dataBean) == null)
                    {
                        this.InsertGroupPermission(dataBean);
                    }
                }
                base.CommitTransaction();

                return datalist.Count;
            }
            catch (DataAccessException e)
            {
                Console.WriteLine("********** Exec  sql error! **********");
                Console.WriteLine(e.InnerException);
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                base.RollBackTransaction();
                return 0;
            }
            finally
            {

            }
        }
        /*
         *名称： InsertUserGrouLst
         *功能： 事务处理函数
         *参数： IList 
         *返回： int
         *说明： 无
         */
        public int InsertUserGrouLst(IList datalist)
        {
            try
            {
                base.BeginTransaction();
                foreach (InpUserGroupBean dataBean in datalist)
                {
                    if (this.UserGroupLoad(dataBean) == null)
                    {
                        this.InsertUserGroup(dataBean);
                    }
                }
                base.CommitTransaction();

                return datalist.Count;
            }
            catch (DataAccessException e)
            {
                Console.WriteLine("********** Exec  sql error! **********");
                Console.WriteLine(e.InnerException);
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                base.RollBackTransaction();
                return 0;
            }
            finally
            {

            }
        }
        /*
         *名称： DeleteGroupPermissionLst
         *功能： 事务处理函数
         *参数： IList 
         *返回： int
         *说明： 无
         */
        public int DeleteGroupPermissionLst(IList datalist)
        {
            try
            {
                base.BeginTransaction();
                foreach (ClassNameBean dataBean in datalist)
                {
                    this.DeleteSysUser(dataBean);
                }
                base.CommitTransaction();

                return datalist.Count;
            }
            catch (DataAccessException e)
            {
                Console.WriteLine("********** Exec  sql error! **********");
                Console.WriteLine(e.InnerException);
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                base.RollBackTransaction();
                return 0;
            }
            finally
            {

            }
        }
        /*
         *名称： DeleteGroupUserGroupLst
         *功能： 事务处理函数
         *参数： IList 
         *返回： int
         *说明： 无
         */
        public int DeleteGroupUserGroupLst(IList datalist)
        {
            try
            {
                base.BeginTransaction();
                foreach (InpUserGroupBean dataBean in datalist)
                {
                    this.DeleteUserGroup(dataBean);
                }
                base.CommitTransaction();

                return datalist.Count;
            }
            catch (DataAccessException e)
            {
                Console.WriteLine("********** Exec  sql error! **********");
                Console.WriteLine(e.InnerException);
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                base.RollBackTransaction();
                return 0;
            }
            finally
            {

            }
        }


    }
}